package com.example.zqwl;

import java.util.ArrayList;
import java.util.List;

import lombok.Data;
@Data
public class dev_modbus_cmd_list {

	private String address;  //(这个命令列表是属于哪个设备的)设备的ip地址
	//存放轮询寄存器命令的列表
	private List<dev_modbus_cmd_info> cmdlist;
	//cmd 的总数,即设置的轮询寄存器的总条数，非常重要
	private int cmdcnt;
	public dev_modbus_cmd_list() {
		cmdlist=new ArrayList<dev_modbus_cmd_info>();
		cmdcnt=0;
	}
	public void modbus_cmd_add(dev_modbus_cmd_info info) {    //添加在最后
		cmdcnt++;
		info.setIdx(cmdcnt-1);
		cmdlist.add(info);
	}
	public void modbus_cmd_delete(int index) {
		//index从0开始
		if(index==(cmdcnt-1)) {                //删除最后一条
			cmdlist.remove(index);
			cmdcnt--;
		}
		else {
			for(int i=index+1;i<cmdcnt;i++) {  //删除中间某条配置
				cmdlist.get(i).setIdx(i-1);
			}
			cmdlist.remove(index);
			cmdcnt--;
		}
	}
	public void modbus_cmd_modify(int index,dev_modbus_cmd_info info) {
		//用新的信息替换旧的信息
		cmdlist.get(index).set_float(info.get_float());
		cmdlist.get(index).setAddr(info.getAddr());
		cmdlist.get(index).setDtype(info.getDtype());
		cmdlist.get(index).setEm(info.getEm());
		cmdlist.get(index).setFun(info.getFun());
		cmdlist.get(index).setKey(info.getKey());
		cmdlist.get(index).setRaddr(info.getRaddr());
		cmdlist.get(index).setRsize(info.getRsize());
		cmdlist.get(index).setTv1(info.getTv1());
		cmdlist.get(index).setTv2(info.getTv2());
	}
}
